package _14了解接口使用注意.demo2;

/*
    实现的多个接口有相同的抽象方法时:实现类只需要重写一次

    实现的多个接口有相同的默认方法时：实现类必须重写

    实现的多个接口有相同的静态方法时：使用没有问题的，不会冲突，使用接口名去调用

 */
public class Demo2 {
    public static void main(String[] args) {
        A.test();
        B.test();

    }
}



//实现的多个接口有相同的静态方法时：使用没有问题的，不会冲突，使用接口名去调用
class ImpClass implements A, B{

}

interface A{
    public static void test(){
        System.out.println("接口A的静态方法");
    }
}

interface B{
    public static void test(){
        System.out.println("接口A的静态方法");
    }
}


//实现的多个接口有相同的默认方法时：实现类必须重写
/*class ImpClass implements A, B{
    @Override
    public void test() {
        System.out.println("实现类重写的方法");
    }
}

interface A{
    default void test(){
        System.out.println("接口A的test方法");
    }
}

interface B{
    default void test(){
        System.out.println("接口B的test方法");
    }
}*/



//实现的多个接口有相同的抽象方法时:实现类只需要重写一次
/*class ImpClass implements A, B{

    @Override
    public void test() {

    }

}

interface A{
    void test();
}

interface B{
    void test();
}*/






